Existential Types for Imperative Languages: Technical Results
نویسنده
چکیده
This technical report contains the full type-safety proof for the language presented in the paper Existential Types for Imperative Languages, originally submitted for publication in October 2001. Because this report should be read only after the paper, effectively as an appendix, we do not repeat the motivation, examples, and informal presentation contained there. Also refer to the paper for related work and a bibliography. We do repeat the figures and definitions so that this report comprises a self-contained proof.
منابع مشابه
Existential Types for Imperative Languages
We integrate existential types into a strongly typed C-like language. In particular, we show how a bad combination of existential types, mutation, and aliasing can cause a subtle violation of type safety. We explore two independent ways to strengthen the type system to restore safety. One restricts the mutation of existential packages. The other restricts the types of aliases of existential pac...
متن کاملPattern Matching via Choice Existential Quantifications in Imperative Languages
Selection statements – if-then-else, switch and try-catch – are commonly used in modern imperative programming languages. We propose another selection statement called a choice existentially quantified statement. This statement turns out to be quite useful for pattern matching among several merits. Examples will be provided for this statement. keywords: selection, pattern matching, choice quant...
متن کاملDynamic Typing in Polymorphic Languages Dynamic Typing in Polymorphic Languages Digital Equipment Corporation 1994
matching protects the identity of \hidden" representation types and prevents accidental matches in cases where several abstract types happen to have the same representation. On the other hand, transparent matching allows a more permissive style of programming, where a dynamically typed value of some abstract type is considered to be a value of a di erent version of \the same" abstract type. Thi...
متن کاملAn Imperative Core Calculus for Java
This technical report presents the specification of a programming language Cool: the Core Object-Oriented Language. Cool is a small language but retains many of the features of modern class-based object-oriented languages, including primitive types, classes, inheritance, objects, instance variables and methods, dynamic method binding, null and arrays, etc.. The specification for Cool in this re...
متن کاملGenus: Making Generics Object-Oriented, Expressive, and Lightweight Technical Report
The support for generic programming in modern object-oriented programming languages is awkward and lacks desirable expressive power. We introduce an expressive genericity mechanism that adds expressive power and strengthens static checking, while remaining lightweight and simple in common use cases. Like type classes and concepts, the mechanism allows existing types to model type constraints re...
متن کامل